Skip to content

feat(video3d): cafe-dance set with textured building, floor and street - #209

Merged
IAnMove merged 1 commit into
developmentfrom
feat/video3d-cafe-set
Sep 7, 2026
Merged

feat(video3d): cafe-dance set with textured building, floor and street#209
IAnMove merged 1 commit into
developmentfrom
feat/video3d-cafe-set

Conversation

@IAnMove

@IAnMove IAnMove commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Why

A music-video template that is a small 3D set, not a scrolling cylinder: one rectangular cafe, a floor, and a street backdrop, each with its own texture, and the character dancing in front.

What

  • New template cafe-dance, camera family front (chest height, looking at the subject)
  • Dressing cafe: box building (facade map), terrazzo plane, dusk street plane
  • Default textures in ui/public/scene3d/
  • Clips stay unbound (index + exact glTF name)

Does not touch SceneAnimatorPanel or the 2.5D compositor.

Checks

  • tsx --test tests/scene3dStage.test.mjs 14/14
  • node scripts/check-i18n-catalogs.mjs ok
  • eslint on touched scene3d files clean

Local proof (not in git): http://192.168.1.87:36592/videos/clip-cafe-dance.mp4

Do not merge until asked.


Note

Low Risk
Scoped to the Video 3D stage (templates, dressing, camera, async textures); no auth or backend changes, with export gated on texture readiness.

Overview
Adds a cafe-dance music-video template: a fixed cafe set (textured building, floor, street backdrop) instead of a scrolling cylinder background, with a single subject slot and clips left unbound.

Introduces dressing cafe via new cafeSet.ts (loads facade/floor/back textures, builds the 3D group with fallbacks). Scene3DStage loads cafe maps asynchronously, re-syncs dressing when textures arrive, and tracks dressingReady so MP4 export waits until cafe assets finish loading. The default circular floor is hidden for cafe dressing.

Adds camera family front (chest-height, subject look-at, fixed eye in camera.ts) and wires it through templates, document parsing, workspace family picker, and en/es i18n. Includes a regression test for the cafe-dance template shape and camera geometry.

Reviewed by Cursor Bugbot for commit e6aa2bf. Configure here.

… street

A rectangular cafe box, terrazzo floor and dusk street plane, each with
its own texture. The character stands in front facing the camera. Clip
names stay unbound. Follows merged #204; does not touch the 2.5D compositor.
@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_51e69005-711a-4780-b177-ec0b21e7b763)

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

PR Review — Loreframe Studio

Risk: low
Scope: 12 file(s); +146/-10; React UI

Automated review from scripts/analyze_pr.py. This is a heuristic pass (no LLM) so humans still own the merge decision.

Findings

  • low — UI changed — rebuild before merge
    Run cd ui && npm run build (CI already does this). Pinokio Update rebuilds for end users; keep ui/dist untracked.

Changed files

  • added: ui/src/features/scene3d/cafeSet.ts
  • modified: ui/src/features/scene3d/Scene3DStage.tsx, ui/src/features/scene3d/Scene3DWorkspace.tsx, ui/src/features/scene3d/camera.ts, ui/src/features/scene3d/document.ts, ui/src/features/scene3d/dressing.ts, ui/src/features/scene3d/gpu.ts, ui/src/features/scene3d/templates.ts, ui/src/features/scene3d/types.ts, ui/src/i18n/locales/en/scene3d.json, ui/src/i18n/locales/es/scene3d.json, ui/tests/scene3dStage.test.mjs

CONTRIBUTING checklist

  • python scripts/verify_clean_repo.py
  • python -m compileall -q app/services app/launch.py scripts
  • cd ui && npm run build if the UI changed
  • No weights, CivitAI sidecars, or generated guides
  • Stays local-first (no required accounts / telemetry)

Posted by the repo PR review workflow. Re-runs on each push to the PR.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Code health

Quality score: 53.9/100

Higher is better. The score is a trend dashboard; the independent ratchet below remains the CI gate.

Component Weight Current Change
Cyclomatic health 45% 54.2 +0.0
File concentration 25% 60.5 +0.1
Oversized-file debt 20% 35.9 +0.0
Modularity 10% 72.0 +0.1

Change vs PR base: +0.0 points.

Metric Value
Production LOC 260,668
Production files 658
Test LOC 89,555
Functions measured 16,682
Functions complexity ≥ 15 822
Maximum complexity 670
Policy code-health-policy-v1
HEAD e2d754afd928fea43f98077a415f51dba54f4a8b
Base f1855ab753bab019e000934f4647522e0aa9900d
UI measurement complete

Markdown, JSON catalogs and tests are out of this table. Only app/ runtime + ui/src TS/JS count.

Most complex functions

Complexity Where
670 app/wgp.py:7164 generate_video
376 ui/src/stores/useStore.ts:4029 Async method 'startGeneration'
355 app/_launch_runtime.py:23505 _run_generation
308 app/wgp.py:12298 generate_video_tab
271 ui/src/stores/useStore.ts:8572 Async method 'loadSettingsFromOutput'
258 app/services/director/planners/short_film.py:3433 ShortFilmPlanner._plan_story_driven
257 ui/src/components/Sidebar/SceneAnimatorPanel.tsx:478 Function 'SceneAnimatorPanel'
248 app/services/director_pipeline.py:13607 _run_video_generation
245 app/services/director_pipeline.py:7712 _run_pipeline
244 ui/src/features/agent/agentActions.ts:1145 Function 'parseAction'
226 app/services/director_pipeline.py:6541 update_comic_preview
225 ui/src/features/agent/agentActions.ts:2892 Async function 'executeAgentActions'

Trend vs baseline

Metric Δ
Production LOC +115
Test LOC +17
Functions ≥ 15 +1
Maximum complexity +0

Warnings

  • production LOC increased by +115
  • functions at complexity >= 15 increased by +1
  • complexity hotspot ui/src/features/scene3d/camera.ts rose 16 -> 17

Ratchet passed.

@IAnMove
IAnMove merged commit 4cce245 into development Sep 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant